package managedbeans;

import java.io.Serializable;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import factoryService.FactoryService;
import model.Categoria;
import model.Usuario;

@ManagedBean
@ViewScoped
public class BeanCategoria implements Serializable{

	/**
	 * 
	 */
	private static final long serialVersionUID = -1076828438994241146L;
	
	private Categoria categoria;
	private Usuario usuario;
	private List<Categoria> lista;

	public BeanCategoria() {
		if (usuario == null) {
			usuario = (Usuario) FacesContext.getCurrentInstance()
					.getExternalContext().getSessionMap().get("usuario");
		}
		if (categoria == null) {
			categoria = new Categoria();
		}
		categoria.setUsuario(usuario);
		alimentarLista();
	}

	public void novo() {
		setCategoria(new Categoria());
		getCategoria().setUsuario(usuario);
	}
	
	public void salvar() throws Exception {
		FactoryService.getCategoriaService().salvar(categoria);
		alimentarLista();
		novo();
	}
	
	public void alimentarLista() {
		setLista(FactoryService.getCategoriaService().findAllByNome(usuario.getCodigo()));
		
	}
	
	public void remover() {
		FactoryService.getCategoriaService().remover(getCategoria());
		novo();
		alimentarLista();
	}
	
	public void editar(Categoria categoria) {
		setCategoria(categoria);
	}
	
	
	
	///////GETTERS SETTERS////////////


	public Categoria getCategoria() {
		return categoria;
	}

	public void setCategoria(Categoria categoria) {
		this.categoria = categoria;
	}

	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}

	public List<Categoria> getLista() {
		return lista;
	}

	public void setLista(List<Categoria> lista) {
		this.lista = lista;
	}

}
